题目:
合并数据集A和B,新表中包含同时出现在A和B里面并且ordernumber相等的obs,A和B的结构如下
Dataset A
ordernumber
firstname
lastname
Dataset B
ordernumber
product
purchase date
解法(by Proc Format):
data b; set b;
start = ordernumber;
label = '*';
fmtname = '$key';
run;
proc sort data=b nodupkey; by start;
run;
proc format cntlin=b;
run;
data all; set a;
if put(ordernumber,$key.) = '*';
run;
这个解法我大致看懂了,它适用于一个表比较小(set b)而另一个表大(set a)而且不方便排序的场合;
可是在我看来,这个解法只能说是从大表(set a)中提取小表(set b)中ordernumber出现的obs,它并没有实现合并,也就是说dataset all里面并没有包括dataset b里除了ordernumber之外的变量;对照该论文给出的其它三种解法,那三种解法都是实在的Merge Code。这样说来,是不是很不严谨呢?很想知道大家怎么看这个问题。望不吝赐教,谢谢。